package com.molichuxing.gateway.bff.order.services;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.gateway.bff.order.entity.request.modify.OrderDeliverySlipModifyVo;
import com.molichuxing.gateway.bff.order.entity.response.*;

import java.util.List;
import java.util.Map; /**
 * @Author: renzhengyu
 * @Description:
 * @Date: Created in 10:52 2019/9/10
 * @Modified By:
 **/
public interface OrderDealerBffService {
    /**
     * 经销商列表
     * @param params
     * @param pageNum
     * @param pageSize
     * @return
     */
    Paged<OrderDealerVo> orderDealerList(Map<String, Object> params, Integer pageNum, Integer pageSize) throws Exception;

    /**
     * 采购单流转状态
     * @param orderCode
     * @return
     */
    OrderDealerStatusInfoVo getDealerOrderFlow(Long orderCode)throws Exception;

    /**
     * 采购单基础信息
     * @param orderCode
     * @return
     */
    OrderDealerDetailBasicVo orderDetailBasic(Long orderCode)throws Exception;

    /**
     * 采购单车辆信息&发车信息
     * @param orderCode
     * @return
     */
    OrderDealerDetailVehicleVo orderDetailVehicle(Long orderCode)throws Exception;

    /**
     * 车辆拒收
     * @param orderCode
     * @param carId
     * @param rejectReason
     * @return
     */
    Boolean orderDealerCarRefuse(Long orderCode, Integer carId, String rejectReason) throws Exception;

    /**
     * 保存交车单
     * @return
     * @throws Exception
     */
    Boolean modifyDeliverySlip(OrderDeliverySlipModifyVo orderDeliverySlipModifyVo)throws Exception;

    /**
     * 采购单收车列表
     * @param orderCode
     * @param carStatus
     * @return
     * @throws Exception
     */
    Paged<OrderDealerDetailStartVo> orderDealerStartList(Long orderCode, Integer carStatus)throws Exception;

}
